package com.tarena.luban.demo.order;

import com.tarena.luban.demo.cart.api.DubboTestRpcApi;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;

public class Cosumer {
    public static void main(String[] args) {
        // 最终就负责 模拟对象的注入
    }
    // 通过dubbo拿到可以远程调用的接口
    // 实现逻辑是底层通信连接
    public static DubboTestRpcApi getApi(){
        // 指定配置消费端的配置类
        ReferenceConfig<DubboTestRpcApi> consumerConfig =new ReferenceConfig<>();
        // 只需要设置接口
        consumerConfig.setInterface(DubboTestRpcApi.class);
        // dubbo 客户顿对象
        DubboBootstrap instance = DubboBootstrap.getInstance();
        // 服务信息 调用consumer还是provider 都应该属于某一个dubbo应用
        instance.application("order-consumer");
        //注册中心抓取数据
        instance.registry(new RegistryConfig("nacos://localhost:8848"));
        //在实例中 添加 consumer配置类
        instance.reference(consumerConfig);
        //调用get获取 proxy代理对象
        DubboTestRpcApi dubboTestRpcApi = consumerConfig.get();
        //打印 类名称
        System.out.println(dubboTestRpcApi.getClass().getName());
        return dubboTestRpcApi;
    }
}
